package si.yun.service;

import si.yun.entity.*;

import java.util.List;
import java.util.Map;

/**
 * @program: SiYunClass
 * @description: 人事功能业务接口
 * @author: 崔晓晨
 * @create: 2021-07-28 20:48
 **/
public interface PersonnelService {
    //获取期间内申请人员统计信息
    PerCount selPerTab(int durDate);
    //获取用户统计量
    List<Integer> selUserEcharts();
    //查询用户的数据展示
    PerCount selUserNum();
    //获取用户列表
    List<SyBeforeUser> selUserTable(SyBeforeUser beforeUser);
    //添加停用的用户
    int addClosure(SyClosure closure);
    //查询单个用户的详细信息
    SyBeforeUser selUserInfo(int userId);
    //查询单个后台用户的详细信息
    SyUser selBackUserInfo(int userId);
    //编译用户信息 ( 不能编译用户的学习时长  和 交易金额 以及 账号创建时间)
    int updSelUser(SyBeforeUser beforeUser);
    //查询封号用户列表
    List<SyClosure> selClosureUserTable(SyClosure closure);
    //解封用户 改变封号列表信息
    int updClosure(SyClosure closure);
    //删除停用后的封停日志
    int delBeforeStatus(int id);
    //查询进思用户列表的详细数据
    List<PerUserListThink> selThinkUserTable(PerUserListThink userThink);
    //查看进思用户的详细信息
    PerUserListThink selUserThinkIndex(int developmentId);
    //上传图片文件 更换头像
    int updImg(int developmentId, String newName,int userId);
    //编译进思用户的基本信息
    int updThinkInfo(PerUserListThink perUserListThink);
    //查询优惠券列表
    List<OperCoupons> selAwayListTab();
    //添加 赠送优惠券的优惠券记录
    int addUserCoupons(List<Integer> userId, List<Integer> couponId);
    //添加进思用户列表
    int addThinkUserInfo(SyUserDevelopment development);
    //添加后端操作日志
    int addOperationLog(SyOperationLog log);
    //添加封号操作日志
    int addClosureLog(SyClosureLog syClosureLog);
    //查询封号日志表
    List<PerClosureLog> selClosureLog(PerClosureLog log);
    //删除封号日志
    int delClosureLog(int id);
    //查看操作日志数据
    List<SyOperationLog> selOperationLog(SyOperationLog operationLog);
    //删除操作日志
    int delOperationLog(int id);
    //获取非进思用户列表
    List<SyBeforeUser> selNotThinkUser(SyBeforeUser beforeUser);
    //查看前台用户反馈列表
    List<PerFeedback> selFeedbackList(PerFeedback feedback);
    // 查询待审核 已受理的数量（反馈列表）
    PerFeedback selAduFeedNum();
    //更新已受理状态
    int updFeedback(Integer feedbackStatus,Integer feedbackId);
    //查看受理详情
    PerOperationLog selReceiveInfo(String tablename,String remark);
    //删除反馈信息
    int delFeedback(Integer feedbackId);
    //查询无消费记录用户列表
    List<SyBeforeUser> selNotSpendUser(SyBeforeUser beforeUser);
    //查询部门数据管理列表
    List<PerDept> selDeptList(PerDept dept);
    //更新部门启用 停用状态
    int updDeptStatus(Integer deptId, Integer deptStatus);
    //修改部门信息
    int updDeptInfo(SyDept dept);
    //添加部门
    int addDeptInfo(PerDept dept);
    //删除部门信息
    int delDeptInfo(Integer deptId);
    //获取部门信息（树形）
    List<PerDeptZtreeNode> selDeptName();
    //获取后台管理员信息
    List<PerBackUser> selBackUserList(PerBackUser user);
    //管理后台管理员账号的账户是否启用
    int updBackUserEnabled(Integer userId, Integer enabled);
    //查找所有封停用户
    List<PerClosureUser> selClosureUser();
    //更改用户账号状态   封停用户账号
    int updBackUserStatus(Integer userId,Integer enabled,Integer status);
    //更新后台管理员信息
    int updBackUserInfo(PerBackUser user);
    //更新后台管理员头像
    int updBackUserImg(String newName, int userId);
    //导入后台管理员
    int importExcelUser(List<PerBackUser> syUsers);
    //添加后台管理人员
    int addBackUserInfo(PerBackUser backUser);
    // 获取今年每月新增的用户数量（用户）
    List<Integer> selBeforeNum();
    //获取今年每月新增的用户数量（管理员）
    List<Integer> selBackNum();
    //获取人员登录总次数 成功次数（前端 ，管理端）
    UserMonth selLoginNums();
    //获取某一时间段内登录的数据(前)
    List<Integer> getLoginTime();
    //获取某一时间段内登录的数据(管)
    List<Integer> getLoginTimes();
    //查询不同的反馈类型下不同的反馈结果数据
    PerFeedData selFeedDatas(Integer feedbackType);
    //查询反馈的总数
    PerFeedData selFeedBackNums();
    //查询不同类型下的课程视频播放量
    List<PerCourseLook> selCourseLookNum();
    //查询搜索统计量
    List<SySearch> selSearchNums();




    //审核列表查看用户详情
    SyAudiTable view1(Integer id, String result);
    //查看用户审核
    SyAudiTable view(Integer id);
    //获取table表格
    List<Map<String,Object>> getTable(String account, String nickname, String applyDate,Integer result);
    //高级检索
    List<Map<String, Object>> getTable1(String account, String phone, String position, String nickname);
    //审核通过
    int audit(String textarea, String remarks, String applyDate, String position, Integer launchId,Integer pass);
    //审核驳回
    int rejected(String textarea, String remarks, String applyDate, String position, Integer launchId,Integer pass);
    //已通过，已审核，已驳回表格
    List<Map<String, Object>> SelTab(String result);
    //通过详情
    SyAudiTable Review(Integer id);
    //获取未审核，通过 驳回数量
    Map<String,Object> getNumber(Integer result1,Integer result2,Integer result3);
    //前台用户
    List<Map<String, Object>> GetTab(int loginType);
    //后台用户
    List<Map<String, Object>> ConLog(int loginType);
    //查询前台用户按钮
    List<Map<String, Object>> deskUser(String loginLocation, String realName, Integer loginState, Integer loginType);
    //查询后台用户按钮
    List<Map<String, Object>> Background(String loginLocation, String trueName, Integer loginState, Integer loginType);
    //获取前后台登录日志总数
    Map<String, Object> getTotal(Integer result1, Integer result2);
}
